package com.ks.fission.service;

import com.ks.core.dto.SearchCriteriaBase;
import com.ks.fission.controller.dto.BFissionTaskRequest;
import com.ks.fission.entity.BFissionTask;
import com.baomidou.mybatisplus.service.IService;
import com.ks.core.base.OperationContext;
import com.ks.core.dto.OperateBase;

import java.util.Map;

/**
 * <p>
 * 裂变-租户添加的分享裂变任务 服务类
 * </p>
 *
 * @author kingdee123
 * @since 2020-12-21
 */
public interface IBFissionTaskService extends IService<BFissionTask> {


    Map<String, Object> getBFissionTaskAdminCount(OperationContext context);

    Map<String, Object> getBFissionTaskUserCount(OperationContext context);
    /**
     * 分享裂变服务管理模块分享任务添加接口
     *
     * @param operationContext
     * @param bFissionTask
     * @return
     */
    int insertBFissionTask(OperationContext operationContext, BFissionTask bFissionTask);

    /**
     * 分享裂变服务管理模块分享任务删除接口
     *
     * @param operationContext
     * @param operateBase
     * @return
     */
    int deleteBFissionTask(OperationContext operationContext, OperateBase operateBase);

    /**
     * 分享裂变服务管理模块分享任务修改接口
     *
     * @param operationContext
     * @param bFissionTask
     * @return
     */
    int updateBFissionTask(OperationContext operationContext, BFissionTask bFissionTask);

    /**
     * 分享裂变服务管理模块分享任务列表查询接口
     *
     * @param operationContext
     * @param searchCriteriaBase
     * @return
     */
    Map<String, Object> selectBFissionTaskList(OperationContext operationContext, SearchCriteriaBase searchCriteriaBase);

    /**
     * 分享裂变模块分享任务发布接口
     *
     * @param operationContext
     * @param operateBase
     * @return
     */
    int issueBFissionTask(OperationContext operationContext, OperateBase operateBase);

    /**
     * 任务领取清单查询
     *
     * @param context
     * @param searchCriteriaBase
     * @return
     */
    Map<String, Object> selectGetBFissionTaskList(OperationContext context, SearchCriteriaBase searchCriteriaBase);

    /**
     * 分享裂变模块应用端会员领取任务接口
     *
     * @param context
     * @param bFissionTaskRequest
     * @return
     */
    int getBFissionTask(OperationContext context, BFissionTaskRequest bFissionTaskRequest);


    /**
     * 分享裂变模块分享任务撤回接口
     *
     * @param context
     * @param operateBase
     * @return
     */
    int isStateFissionTask(OperationContext context, OperateBase operateBase);


    /**
     * 分享任务
     *
     * @param context
     * @param searchCriteriaBase
     * @return
     */
    Map<String, Object> selectTaskList(OperationContext context, SearchCriteriaBase searchCriteriaBase);


    /**
     * 分享任务浏览
     *
     * @param context
     * @param bFissionTaskRequest
     * @return
     */
    int addTaskViews(OperationContext context, BFissionTaskRequest bFissionTaskRequest);

    BFissionTask getBFissionTaskInfo(int id);




}
